'use strict';
(function (angular) {
'use strict';
angular.module('oc.lazyLoad').directive('ocLazyLoad', function ($ocLazyLoad, $compile, $animate, $parse, $timeout) {
return {
restrict: 'A',
terminal: true,
priority: 1000,
compile: function compile(element, attrs) {
// we store the content and remove it before compilation
var content = element[0].innerHTML;
element.html('');
return function ($scope, $element, $attr) {
var model = $parse($attr.ocLazyLoad);
$scope.$watch(function () {
return model($scope) || $attr.ocLazyLoad; // it can be a module name (string), an object, an array, or a scope reference to any of this
}, function (moduleName) {
Eif (angular.isDefined(moduleName)) {
$ocLazyLoad.load(moduleName).then(function () {
// Attach element contents to DOM and then compile them.
// This prevents an issue where IE invalidates saved element objects (HTMLCollections)
// of the compiled contents when attaching to the parent DOM.
$animate.enter(content, $element);
// get the new content & compile it
$compile($element.contents())($scope);
});
}
}, true);
};
}
};
});
})(angular);
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkM6L3dhbXAvd3d3L29jTGF6eUxvYWQvc3JjL29jTGF6eUxvYWQuZGlyZWN0aXZlLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsQ0FBQyxVQUFBLE9BQU8sRUFBSTtBQUNSLGdCQUFZLENBQUM7O0FBRWIsV0FBTyxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQyxTQUFTLENBQUMsWUFBWSxFQUFFLFVBQVMsV0FBVyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRTtBQUM5RyxlQUFPO0FBQ0gsb0JBQVEsRUFBRSxHQUFHO0FBQ2Isb0JBQVEsRUFBRSxJQUFJO0FBQ2Qsb0JBQVEsRUFBRSxJQUFJO0FBQ2QsbUJBQU8sRUFBRSxpQkFBUyxPQUFPLEVBQUUsS0FBSyxFQUFFOztBQUU5QixvQkFBSSxPQUFPLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztBQUNuQyx1QkFBTyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQzs7QUFFakIsdUJBQU8sVUFBUyxNQUFNLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRTtBQUNyQyx3QkFBSSxLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUNyQywwQkFBTSxDQUFDLE1BQU0sQ0FBQyxZQUFNO0FBQ2hCLCtCQUFPLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLENBQUMsVUFBVSxDQUFDO3FCQUM1QyxFQUFFLFVBQUEsVUFBVSxFQUFJO0FBQ2IsNEJBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsRUFBRTtBQUM5Qix1Q0FBVyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBTTs7OztBQUlwQyx3Q0FBUSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLENBQUM7O0FBRWxDLHdDQUFRLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUM7NkJBQ3pDLENBQUMsQ0FBQzt5QkFDTjtxQkFDSixFQUFFLElBQUksQ0FBQyxDQUFDO2lCQUNaLENBQUM7YUFDTDtTQUNKLENBQUM7S0FDTCxDQUFDLENBQUM7Q0FFTixDQUFBLENBQUUsT0FBTyxDQUFDLENBQUMiLCJmaWxlIjoiQzovd2FtcC93d3cvb2NMYXp5TG9hZC9zcmMvb2NMYXp5TG9hZC5kaXJlY3RpdmUuanMiLCJzb3VyY2VzQ29udGVudCI6WyIoYW5ndWxhciA9PiB7XHJcbiAgICAndXNlIHN0cmljdCc7XHJcblxyXG4gICAgYW5ndWxhci5tb2R1bGUoJ29jLmxhenlMb2FkJykuZGlyZWN0aXZlKCdvY0xhenlMb2FkJywgZnVuY3Rpb24oJG9jTGF6eUxvYWQsICRjb21waWxlLCAkYW5pbWF0ZSwgJHBhcnNlLCAkdGltZW91dCkge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIHJlc3RyaWN0OiAnQScsXHJcbiAgICAgICAgICAgIHRlcm1pbmFsOiB0cnVlLFxyXG4gICAgICAgICAgICBwcmlvcml0eTogMTAwMCxcclxuICAgICAgICAgICAgY29tcGlsZTogZnVuY3Rpb24oZWxlbWVudCwgYXR0cnMpIHtcclxuICAgICAgICAgICAgICAgIC8vIHdlIHN0b3JlIHRoZSBjb250ZW50IGFuZCByZW1vdmUgaXQgYmVmb3JlIGNvbXBpbGF0aW9uXHJcbiAgICAgICAgICAgICAgICB2YXIgY29udGVudCA9IGVsZW1lbnRbMF0uaW5uZXJIVE1MO1xyXG4gICAgICAgICAgICAgICAgZWxlbWVudC5odG1sKCcnKTtcclxuXHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZnVuY3Rpb24oJHNjb3BlLCAkZWxlbWVudCwgJGF0dHIpIHtcclxuICAgICAgICAgICAgICAgICAgICB2YXIgbW9kZWwgPSAkcGFyc2UoJGF0dHIub2NMYXp5TG9hZCk7XHJcbiAgICAgICAgICAgICAgICAgICAgJHNjb3BlLiR3YXRjaCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBtb2RlbCgkc2NvcGUpIHx8ICRhdHRyLm9jTGF6eUxvYWQ7IC8vIGl0IGNhbiBiZSBhIG1vZHVsZSBuYW1lIChzdHJpbmcpLCBhbiBvYmplY3QsIGFuIGFycmF5LCBvciBhIHNjb3BlIHJlZmVyZW5jZSB0byBhbnkgb2YgdGhpc1xyXG4gICAgICAgICAgICAgICAgICAgIH0sIG1vZHVsZU5hbWUgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZihhbmd1bGFyLmlzRGVmaW5lZChtb2R1bGVOYW1lKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJG9jTGF6eUxvYWQubG9hZChtb2R1bGVOYW1lKS50aGVuKCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBBdHRhY2ggZWxlbWVudCBjb250ZW50cyB0byBET00gYW5kIHRoZW4gY29tcGlsZSB0aGVtLlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoaXMgcHJldmVudHMgYW4gaXNzdWUgd2hlcmUgSUUgaW52YWxpZGF0ZXMgc2F2ZWQgZWxlbWVudCBvYmplY3RzIChIVE1MQ29sbGVjdGlvbnMpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gb2YgdGhlIGNvbXBpbGVkIGNvbnRlbnRzIHdoZW4gYXR0YWNoaW5nIHRvIHRoZSBwYXJlbnQgRE9NLlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRhbmltYXRlLmVudGVyKGNvbnRlbnQsICRlbGVtZW50KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBnZXQgdGhlIG5ldyBjb250ZW50ICYgY29tcGlsZSBpdFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRjb21waWxlKCRlbGVtZW50LmNvbnRlbnRzKCkpKCRzY29wZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH0sIHRydWUpO1xyXG4gICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcbiAgICB9KTtcclxuXHJcbn0pKGFuZ3VsYXIpO1xyXG4iXX0= |